<?php
/**
 * * * * * * * * * * LICENCIA * * * * * * * * * * * * * * * * * * * * *

Copyright(C) 2012
Instituto Universtiario de Tecnología Dr. Federico Rivero Palacio

Este programa es Software Libre y usted puede redistribuirlo y/o modificarlo
bajo los términos de la versión 3.0 de la Licencia Pública General (GPLv3)
publicada por la Free Software Foundation (FSF), es distribuido sin ninguna
garantía. Usted debe haber recibido una copia de la GPLv3 junto con este
programa, sino, puede encontrarlo en la página web de la FSF, 
específicamente en la dirección http://www.gnu.org/licenses/gpl-3.0.html

 * * * * * * * * * * ARCHIVO * * * * * * * * * * * * * * * * * * * * *

Nombre: LoginServicio.clase.php
Diseñador: Johan Alamo.
Programador: Geraldin Castillo 
Fecha: enero 2014
Descripción:  
	Esta clase ofrece el servicio de conexión a la base de datos, recibe los
    parámetros, construye las consultas SQL, hace las peticiones a la base de
    datos y retorna los objetos o datos correspondientes a la acción. 

 * * * * * * * * Cambios/Mejoras/Correcciones/Revisiones * * * * * * * *
Diseñador - Programador /   Fecha   / Descripción del cambio
---                         ----      ---------

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
	
class LoginServicio{
	
	/* Método público que permite hacer una consulta a la base de datos según
	 * sea el tipo de usuario buscará en la tabla correspondiente ya sea “d” 
	 * docente ó “e” estudiante, comparará si la clave si corresponde a ese
	 * usuario. Si el resultado de la consulta a la base de datos es diferente
	 * de false ó de 0 se llenará un objeto tipo Login con los datos (nombre, 
	 * apellido ,código y tipo) extraídos de la base de datos y luego se retornará
	 * el objeto tipo Login. 

		Parámetros de entrada: 
			$cedula: tipo: cadena.
				Cédula del usuario .
			$clave: tipo: cadena.
				Clave del usuario
			$tipoUsuario: tipo: cadena.
				Tipo de usuario ya sea “e” estudiante “d” docente.
	
		Valor de retorno: 
			0: en caso de no traer ninguna información de la base de datos .
			Objeto tipo Login: cuando la consulta trajo la  información del 				usuario.
		Excepciones que lanza: 
			Exception: si ocurre un error en la conexión a la  base de datos.
	 * 
	 * */

	static function obtenerLogin($cedula,$clave,$tipoUsuario){
		if (($tipoUsuario=='d') || ($tipoUsuario=='D'))
			$tablaBuscar="docente";
		if (($tipoUsuario=='e') || ($tipoUsuario=='E'))
			$tablaBuscar="estudiante";
			//instrucción para reconocer el objeto conexión
		
			global $gbConectorBD;
			//construcción de la consulta SQL
			$sql="	SELECT 				
						ts_persona.apellido1,
						ts_persona.nombre1,
						ts_persona.codigo  					  	
					FROM 
						public.ts_persona,			
						public.ts_".$tablaBuscar."
					WHERE 
						ts_persona.codigo = ts_".$tablaBuscar.".codigo AND
						ts_".$tablaBuscar.".login = $1 AND 
						ts_".$tablaBuscar.".passwd =  md5($2);";		
	
			$parametros=array($cedula,$clave);
			$result = $gbConectorBD->ejecutarDQLDirecto($sql,$parametros);
			if ($result ===false )
				throw new Exception ("ocurrió un error al conectarse en la base de datos") ;
			if ( $result === 0) 
				//retorna false si ocurre un error, y 0 si la consulta no
				//devuelve fil
				return $result;
			else {
				$login = new Login($result[0]['nombre1'],$result[0]['apellido1'],$tipoUsuario,$result[0]['codigo']);
				return $login;

			}
		
	}		

}

?>
